# Roel Matthysen
# s0202264
# Finale versie Project Deel 1

# Variabele voor de geselecteerde compiler (zie fortrancompilers)
FC=gfortran
# Variabele voor algemene compilatievlaggen (afhankelijk van de compiler)
FFLAGS_nagfor= -C=all -gline -u -colour 
FFLAGS_gfortran=-g -Wtabs -fbounds-check 
FFLAGS_g95=-g -Wall -fbounds-check -ftrace=full 
FFLAGS_ifort=-g -debug full -check -warn -free -Tf 
# Selecteer de juiste vlaggen voor de huidige compiler
FFLAGS=$(FFLAGS_$(FC))
#LAPACKLIB = -L/usr/lib -llapack
LAPACKLIB=-L/home/u0060262/H03F0 -llapack-$(FC) 
BLASLIB=-L/home/u0060262/H03F0 -lblas-$(FC)
LAPACKLIBTHUIS = -L/Users/roel/Downloads/lapack-3.4.1/SRC/ -llapack



default: matrixexp

test: src/methods.o src/IO.o src/test.o
	$(FC) -o test src/test.o src/methods.o src/IO.o  $(LAPACKLIB) $(BLASLIB)
	$(RM) src/*.o *.mod src/*.mod
	./test
thuis: src/methods.o src/IO.o src/test.o
	$(FC) -o test src/test.o src/methods.o src/IO.o  $(LAPACKLIBTHUIS)
	$(RM) src/*.o *.mod src/*.mod
	./test

src/test.o: src/test.f95
	$(FC) -c $(FFLAGS) src/test.f95 -o src/test.o

matrixexp: src/methods.o src/IO.o src/matrixexp.o
	$(FC) -o matrixexp src/matrixexp.o src/methods.o src/IO.o $(LAPACKLIB)
	$(RM) src/*.o *.mod src/*.mod

src/matrixexp.o: src/matrixexp.f95
	$(FC) -c $(FFLAGS) src/matrixexp.f95 -o src/matrixexp.o

src/methods.o: src/methods.f95
	$(FC) -c $(FFLAGS) src/methods.f95 -o src/methods.o 

src/IO.o: src/IO.f95
	$(FC) -c $(FFLAGS) src/IO.f95 -o src/IO.o 

clean:
	$(RM) src/*.o src/*.mod 

veryclean: clean
	$(RM) matrixexp test
